.\"
.\" Copyright (C) 2006 Red Hat, Inc. All Rights Reserved.
.\" Written by David Howells (dhowells@redhat.com)
.\"
.\" This program is free software; you can redistribute it and/or
.\" modify it under the terms of the GNU General Public License
.\" as published by the Free Software Foundation; either version
.\" 2 of the License, or (at your option) any later version.
.\"
.TH KEYCTL_UPDATE 3 "4 May 2006" Linux "Linux Key Management Calls"
.\"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
.SH NAME
keyctl_update \- Update a key
.\"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
.SH SYNOPSIS
.nf
.B #include <keyutils.h>
.sp
.BI "long keyctl_update(key_serial_t " key ", const void *" payload ,
.BI "size_t " plen ");"
.\"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
.SH DESCRIPTION
.BR keyctl_update ()
updates the payload of a key if the key type permits it.
.P
The caller must have
.B write
permission on a key to be able update it.
.P
.I payload
and
.I plen
specify the data for the new payload.
.I payload
may be NULL and
.I plen
may be zero if the key type permits that.  The key type may reject the data if
it's in the wrong format or in some other way invalid.
.\"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
.SH RETURN VALUE
On success
.BR keyctl_update ()
returns
.BR 0 .
On error, the value
.B -1
will be returned and errno will have been set to an appropriate error.
.\"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
.SH ERRORS
.TP
.B ENOKEY
The key specified is invalid.
.TP
.B EKEYEXPIRED
The key specified has expired.
.TP
.B EKEYREVOKED
The key specified had been revoked.
.TP
.B EINVAL
The payload data was invalid.
.TP
.B ENOMEM
Insufficient memory to store the new payload.
.TP
.B EDQUOT
The key quota for this user would be exceeded by increasing the size of the
key to accommodate the new payload.
.TP
.B EACCES
The key exists, but is not
.B writable
by the calling process.
.TP
.B EOPNOTSUPP
The key type does not support the update operation on its keys.
.\"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
.SH LINKING
This is a library function that can be found in
.IR libkeyutils .
When linking,
.B -lkeyutils
should be specified to the linker.
.\"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
.SH SEE ALSO
.BR keyctl (1),
.br
.BR add_key (2),
.br
.BR keyctl (2),
.br
.BR request_key (2),
.br
.BR keyctl (3),
.br
.BR keyutils (7),
.br
.BR keyrings (7)
